Method, medium, and system to optimize revenue using a bid reservation system

ABSTRACT

A method for evaluating bids for the purchase of inventory items to optimize bid-generated revenue. The method comprises receiving a bid for an inventory item, the bid comprising a bid price, a specific inventory item that is to be purchased, and a number of inventory items to be purchased. The bid is input into a machine learning algorithm as are features associated with the inventory item and information associated with the bid. The machine learning algorithm analyzes the bid and generates an output to accept or decline the bid. Responsive to that output the bidder is advised whether the bid was accepted or declined.

CROSS REFERENCE TO RELATED APPLICATION

The present application is a continuation of the non-provisionalapplication assigned Ser. No. 16/017,577, filed on Jun. 25, 2018, nowU.S. Pat. No. 10,825,084, which claims priority to the provisionalpatent application assigned number 62/523,837, filed on Jun. 23, 2017 ,which are incorporated herein in their entirety.

FIELD OF THE INVENTION

The invention generally relates to a method that allows businesses tooptimize or maximize the revenue and profit generated from the sale ofproducts or services, i.e. the sale of “inventory” when demand for theinventory is uncertain. The invention uses machine learning algorithmsto evaluate bids (also referred to as offers) submitted by prospectivecustomers to purchase the inventory and accept or reject each bid on astandalone basis, i.e. not in comparison with other bids. The inventionis especially useful for businesses that sell products or services thatare perishable and capacity constrained, as these businesses have thegreatest incentive to sell additional inventory in a time-efficientmanner to optimize revenue. The invention helps these businesses to makethe difficult decisions over which bids to accept and which to rejectgiven these time and capacity constraints. The invention also addressesthe need many businesses have to provide a near real-time response tothe bidder.

BACKGROUND OF THE INVENTION

Many businesses sell products or services that are both perishable andcapacity constrained. Products or services are perishable if they areavailable for only a limited time period and after that time has passedthey are not available or saleable (see examples set forth below).Products or services are capacity constrained (i.e. scarce resources) iffactors associated with the product or service offered for purchaselimit the amount of inventory available for sale (see examples below).Examples include but are certainly not limited to:

-   -   Airlines-that sell the right to occupy one of a finite number of        seats on a flight. If the flight takes off with empty seats, the        unsold “seat inventory” perishes and has no value;    -   Hotels-that sell the right to stay in one of a finite number of        available rooms for a night.

If a room is empty on any given night, there is no way to recover thelost revenue; and

-   -   Golf courses-that sell tee times (i.e. the right to play the        course at a given time), which are limited by the amount of        available daylight and the need for spacing between groups of        golfers. If no one tees off at a given tee time, the inventory        is lost forever.

All businesses incur costs associated with the inventory they sell.These costs are typically categorized as either: (i) fixed costs, i.e.costs that are incurred irrespective of the amount of inventoryavailable for sale; and (ii) variable costs, which are directlyproportional to the amount of inventory. For example, while the fixedcost to fly a plane from New York to Los Angeles is significant (e.g.fuel, crew salaries, and other costs that don't vary materially with thenumber of passengers), the variable cost associated with eachincremental passenger is minimal (perhaps only the snacks and drinksgiven to the extra passenger). In other cases, products or services mayhave higher variable costs. For example, a manufacturer of automobilesmust purchase a significant amount of raw materials to manufacture eachunit of inventory.

For many businesses, customer demand for inventory can vary dramaticallydepending on many exogenous factors. Sometimes flights are fully booked(or utilized), other times a flight between the same two cities at thesame time on a different day is empty. Sometimes hotels are overbooked,the next week the same hotel is offering deep discounts to try toattract guests. Sometimes golf courses are crowded, while the next weekyour group might be one of the few on the course.

As is widely known by people who are skilled in the art, the goal of anybusiness is to sell its inventory at a price that exceeds the variablecost. The excess amount, commonly called contribution margin, can beused to offset the business's fixed costs and also generate a profit ifthe total contribution margin generated from the sale of all inventoryexceeds the business's fixed costs.

From the above information, it should be clear that many businessescould benefit from using a system that allows customers to offer a pricethey are willing to pay, rather than allowing inventory to go unsoldbecause the potential customer was unwilling to pay the list or “asking”price. If the inventory that customers are bidding on is not capacityconstrained, it is simple to decide which bids to accept. Any bid thatexceeds the inventory's variable cost should be accepted because it willgenerate positive contribution margin and help offset fixed costs.However, if the inventory is capacity constrained, the challenge ofdeciding which bids to accept and reject becomes much more challenging,because the business will now want to sell the limited availableinventory to the highest bidder(s) in order to maximize its revenue.

The impact of capacity constraints would be significantly minimized ifall bids could be aggregated and evaluated simultaneously, e.g., abusiness that gets ten bids for the five units of inventory it isselling can look at all ten bids and select the five highest offers.When this is not possible, and each bid needs to be evaluated on its ownmerit without the benefit of knowing the number and value of other bidsthat will be submitted later, it creates an extremely complex problem ofdeciding which bids to accept and which bids to reject as the bids aresubmitted or shortly thereafter. Maximizing the revenue generated fromthe bids in this latter scenario requires an ability to accuratelyforecast the amount of inventory that will be available, the number offuture bids and the prices that will be offered in future bids.

This already complex problem is exacerbated in cases where inventory isperishable, such as a seat on an airplane that has no value after theflight has departed. The element of perishability adds a time constraintto the problem, as the future inventory and bid forecast described inthe preceding paragraph now has to resolve in a timeframe that allowsthe inventory to be utilized before it perishes, (i.e., is no longeravailable).

A similar challenge arises as a result of the real-world nature ofcustomers. Many customers are accustomed to the “immediategratification” that permeates many elements of today's society. Thus,they need a near real-time response that their bid/offer is accepted orthey will take their business somewhere else to avoid the risk of notbeing able to make the purchase.

BRIEF DESCRIPTION OF THE FIGURES

The following sections will be better understood when read inconjunction with the appended drawings. For the purpose of illustratingthe invention, there are shown in the drawings exemplary embodiments ofthe invention; however, the invention is not limited to the specificmethods, compositions, and devices disclosed. In the drawings:

FIG. 1 illustrates a single neuron in an artificial neural network,including inputs, weights, their combination, and output.

FIG. 2 illustrates an exemplary artificial neural network thatimplements the present invention.

FIG. 3 illustrates a flow chart describing the present invention.

FIG. 4 illustrates an exemplary computer system for practicing theinvention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention may be understood more readily by reference to thefollowing detailed description taken in connection with the accompanyingfigures and examples, which form a part of this disclosure. It is to beunderstood that this invention is not limited to the specific devices,methods, applications, conditions or parameters described and/or shownherein, and that the terminology used herein is for the purpose ofdescribing particular embodiments by way of example only and is notintended to be limiting of the claimed invention.

Also, as used in the specification including the appended claims, thesingular forms “a,” “an,” and “the” include the plural, and reference toa particular numerical value includes at least that particular value,unless the context clearly dictates otherwise. The term “plurality”, asused herein, means more than one. When a range of values is expressed,another embodiment includes from the one particular value and/or to theother particular value. Similarly, when values are expressed asapproximations, by use of the antecedent “about,” it will be understoodthat the particular value forms another embodiment. All ranges areinclusive and combinable.

It is to be appreciated that certain features of the invention whichare, for clarity, described herein in the context of separateembodiments, may also be provided in combination in a single embodiment.Conversely, various features of the invention that are, for brevity,described in the context of a single embodiment, may also be providedseparately or in any sub-combination. Further, references to valueswithin a stated range include each and every value within that range.

The disclosures of each patent, patent application, and publicationcited or described in this document is incorporated herein by referencein its entirety.

Those skilled in the art will appreciate that numerous changes andmodifications can be made to the preferred embodiments of the inventionand that such changes and modifications can be made without departingfrom the spirit of the invention. It is, therefore, intended that theappended claims cover all such equivalent variations as fall within thespirit and scope of the invention.

The present invention is a system and method to help businesses optimizetheir revenue by evaluating bids or offers for their inventory, in nearreal-time, to determine whether each prospective customer's bid shouldbe accepted or rejected without the necessity of comparing it againstother bids. The invention utilizes a machine learning algorithm that istrained to make the accept/reject determination. The trained machinelearning algorithm provides a correct decision (i.e., a decision thatgenerates greater revenue for the business) much more frequently thanwould other decision-making techniques.

While the general use of machine learning algorithms and associatedtraining and updating techniques are well known to those skilled in theart, their use to evaluate bids for perishable inventory that iscapacity constrained, in near real time, is novel and non-obvious. Inthe context of machine learning algorithms, “training” usually refers tothe learning process that is conducted prior to placing the machinelearning algorithm in operation; whereas “updating” refers to learningprocesses that are performed after the algorithm has become operational.

Machine Learning Algorithms

Machine learning algorithms are dynamic models, implemented in software,that assimilate vast amounts of input data to generate outputs that aretypically either classification, i.e., binary decisions (e.g. yes/no,accept/reject, etc.) or numeric predictions (e.g. 97%). Machine learningalgorithms are differentiated from static computational algorithms bytheir ability to independently change (i.e., learn) the way the outputsare determined, with minimal human intervention. Machine learningalgorithms are programmed to self-adjust to reduce the error ofsubsequent output predictions to better match an actual or desiredoutcome. Over time, and many iterations, these algorithms learn to makeaccurate predictions within the bounds of given constraints.

Machine learning is a broad umbrella term that covers many differentalgorithms that each utilize different design strategies. Sub-categoriesof machine learning algorithms include artificial neural networks,decision trees, random forests, support vector regression and many more.Many of these algorithms are best suited for specific classes ofproblems. For instance, decision trees are excellent at binary ormultiple classification problems, while support vector regression isbetter for continuous value prediction problems.

The choice of an algorithm is determined by the type of data input tothe model and the type of prediction output desired. One skilled in theart of machine learning will know how to select the appropriatealgorithm to implement the subject invention in different businesssituations. Further, such an individual will know how to select andinstall the proper software tools to implement the selected algorithmfrom among any number of generally available machine learning algorithmdevelopment libraries such as TensorFlow (available from Google, Inc. ofMountain View, Calif.), Theano (developed by the Université deMontréal), Sci-kit learn (Scikit-learn: Machine Learning in Python,Pedregosa et al., JMLR 12, pp. 2825-2830, 2011), or CNTK (available fromMicrosoft Corporation of Redmond, Wash.).

One implementation of the subject invention involves the use of anartificial neural network. Artificial neural networks are collections of“neurons” that are configured in one or more “layers”. FIG. 1 depicts asingle neuron in an artificial neural network. A single neuron 10embodies a mathematical activation function 12, i.e., a simple staticfunction that converts multiple weighted inputs to a single outputvalue. The neuron 10 receives input data from an unlimited number ofsources (X1, X2, X3 in FIG. 1 ), applies a weight value to each input(weights W1, W2, W3 in FIG. 1 ), sums the weighted values, and appliesthe activation function 12 to the sum to predict an output (shown as Yin FIG. 1 ).

The specific activation function used in a neural network depends on thetype of output desired. Activation functions can be as simple or complexas necessary to adequately represent the combined effect of the lowerlayer of the network or the combination of the input data. For instance,predicting a binary classification suggests use of a sigmoidalactivation function that outputs a 0 or 1. Outputs greater than athreshold (usually 0.5) are predicted to be one category (e.g.acceptable bids) while outputs below a threshold fall into the othercategory (e.g. rejected bids).

Regardless of the activation function, the calculated output (Y) canthen be passed to another neuron as an input, or it can represent thefinal output of the complete neural network. One skilled at implementingartificial neural networks can apply the appropriate activation functionas determined by the types of inputs and the desired output.

FIG. 2 is a schematic diagram of a very simple artificial neural networkused to make accept or reject decisions for bids on golf tee times, asone non-limiting example. A plurality of input features is shown on theleft side of FIG. 2 , each input establishing a value that is input toeach node in a column 21.

Each input feature or variable is represented numerically throughnormalization, scaling, or one-hot encoding. For example, when usingone-hot encoding, a single category (i.e. colors) is coded into a seriesof binary representations for each type represented in that the categorywhere only one column has a 1 corresponding to the appropriate category(only the “green” column has a 1, while all other colors are marked witha 0). Scaling and normalization are used to represent numerical data ina similar fashion to the algorithm. For example, rather than inputtingthe actual bid amount, the input can be the actual bid amount as apercent of the typical sale price. The granularity of the inputs canalso vary. For example, an advertising promotion is typically offeredfor the entire day (or several consecutive days) and thus the inputvalue to the neural network does not change during the day. However, theweather can vary from hour-to-hour and different input values can besupplied on an hourly basis to represent weather variations.Alternatively, the user may decide to use a simple weather forecast forthe entire day. Another example of varying granularity is that overallweather conditions could be a single input, or there could be separateinputs for expected temperature, expected windspeed, chance ofprecipitation, etc.

As the output values from each node in column 21 are passed to one ormore nodes in column 22 they are modified by weights, as indicated bythe numbers adjacent to the lines that show the connections betweennodes. For example, several lines extend from the node 21A to each nodein column 22. As can be seen, the weight values adjacent to each outputline are different. The weight values modify the output value from thenode 21A and the weighted value is input to the corresponding node inthe column 22. The process is repeated with various weights multipliedby the output value from each node in column 22; the weighted value isthen input to each one of the nodes in a column 24.

As a general statement, the weight values in FIG. 2 indicate the effectthat an input feature or variable has on each node in the next column.Note that the effect is likely different for each node in the subsequentcolumn as reflected by different weight values. Further note that theweight could be zero if the input feature has no effect on the nextnode.

Nodes 30 and 32 represent bias values for each node in columns 22 and24. These bias values may be based on results from prior iterationsthrough the neural network 20 and thus establish a starting point (orconstant adjustment) for the input value in each node. The bias valuesare not necessarily changed for each learning iteration through theneural network 20. Instead, when the algorithm is trained or updated,the weight values are changed to optimize the outcome from the neuralnetwork so that, in the context of the golf tee time application forexample, the golf course revenue is optimized.

As shown in FIG. 2 , an artificial neural network typically entails acomplex amalgamation of individual neurons with different weights(applied to the output of each neuron), diverse input data, and aplurality of activation functions to accurately predict an outcome.However, even the simplest machine learning algorithms are capable ofiteratively updating the weights of the input data. This is key to thepresent invention. To train or update the network (i.e., adjust theweight values), the network output is compared with an optimal ordesired output. Prediction error is defined as the difference betweenthe network output and the desired output. A loss function computes themagnitude and direction of the prediction error. The prediction error isthen back-propagated through the network, updating the weight values orparameters for each neuron to reduce prediction errors in subsequentiterations. Thus, the neural network is not a static function ornetwork, but one that changes with each training episode.

For situations in which inventory is capacity constrained or scarce (forexample, one airplane flight with a finite number of seats) and the goalis to optimize revenue, linear programming or other similar mathematicaloptimization techniques such as Markov Chain Monte Carlo estimation, canbe used on a post-hoc basis to find the ideal or near-ideal subset ofbids that should have been accepted in order to maximize the revenuegenerated from a given set of bids for the scarce inventory.

Accumulated data from the optimization of multiple sets of bids overdifferent inventory items results in a body of historical data usefulfor training a machine learning algorithm on the features associatedwith optimal bids.

In one scenario, the initial weights may be randomly selected. Trainingis then conducted using historical data until the weights converge tovalues that work fairly well for matching input data with the correctoutput data. The weight values can then be tested using additionalhistorical data. Finally, in the context of maximizing revenue based onbids, the machine learning algorithm predicts whether a bid should beaccepted or declined. Training of the algorithm can continue even afterit has been put to use by the optimization and back-propagationtechniques described herein (which is generally referred to as updatingthe algorithm).

A network trained with many observations of historical data can achieverobust and accurate predictive capabilities. Once a network has learneda stable pattern of prediction, it can be deployed to make real timepredictions. Unlike training, which can take a significant amount oftime or computing power, feed-forward prediction (i.e. evaluating asingle bid) is very quick and allows the algorithm to administerdecisions in near real time. Furthermore, training (generally referredto as updating the algorithm once the algorithm has been deployed inoperation) can be continued given new data even after the algorithm isoperational and can be further enhanced when used in conjunction withreinforcement learning techniques to optimize learning to increase atarget goal (such as revenue).

EXAMPLE IMPLEMENTATION OF THE INVENTION FOR RESERVING GOLF COURSE TEETIMES

Golf courses sell tee time reservations whereby golfers reserve aspecific time at which they can begin their round of golf. Each golfcourse is capacity constrained in that:

-   -   each tee time has only 4 slots, i.e., it can accommodate no more        than 4 golfers;    -   there are typically 7-8 tee times available per hour, to allow        sufficient spacing between groups of golfers; and    -   tee times cannot commence until shortly after sunrise and        typically end well before sunset as golf cannot be played in the        dark.

Further, tee times are perishable. As can be easily appreciated, it isnot possible to generate revenue from a tee time that passes unused.Demand from golfers is both highly perishable and stochastic.Additionally, golfers cannot wait until the night before a tee time toknow whether their bid was accepted, as they would typically need tomake alternative plans if their bid was declined. Thus, golf courses donot have the luxury of aggregating numerous bids until a short timeprior to the scheduled tee time, comparing the bids to determine whichbids to accept and decline, and then informing golfers at the lastminute if they have been chosen to play.

Finally, virtually all of the costs incurred by golf courses are fixedcosts (e.g. property taxes, maintenance costs, irrigation costs, etc.)that do not change irrespective of the number of golfers using thecourse. Also, the variable costs associated with having one more golferon a course are miniscule. Therefore, almost all bids will providepositive contribution margin. Golf courses are thus a perfect example ofa type of business that can benefit significantly from using the subjectinvention.

Consider a golf course that accepts tee time reservations seven days inadvance. Assume the course's list price for a Sunday morning tee time is$50 per golfer and a potential customer calls on the Tuesday prior andoffers to pay $40 to play on Sunday morning. The decision to accept orreject the $40 offer depends on whether there are any available tee timeslots remaining for Sunday morning, and if so, the likelihood of havingall of the slots filled (as of Sunday morning) by golfers who have paidmore than $40 to play.

If the course expects to be at full capacity with customers who arewilling to pay the $50 list price, or the course expects subsequentbidders to offer more than $40 later in the week, the bid should bedeclined. Conversely, if when Sunday morning arrives there are unusedslots, or some slots were sold to golfers who paid less than $40, itwould have benefited the course to accept the $40 bid.

This example clearly illustrates that the challenge of maximizing golfcourse revenue is one of accurately predicting market demand in terms ofboth the number of customers and their willingness to pay.Unfortunately, the demand for tee times is highly stochastic anddependent on numerous factors that have varying levels of correlation.The factors include, but certainly are not limited to: the weather;course conditions; competing course conditions and promotions; competingevents (e.g., the local football team has game); time of the year andday of the week. Other factors that would be useful to evaluate whenmaking the decision of whether or not to accept the example bid include:the current and historical utilization of Sunday tee times, thehistorical number of bids and the dollar amount each bid that aretypically received to play on Sundays, the amount of the current bid,and many others known to those skilled in the art.

To apply the subject invention to this problem, bids are obtained fromcustomers who desire to purchase a tee time reservation. Certain dataspecific to each bid, i.e. the number of golfers desiring to play, thenumber of holes they want to play and the amount they are willing to payare provided as one of many inputs in the first layer of an artificialneural network. As depicted in FIG. 2 , additional inputs to the firstlayer of an artificial neural network include:

-   -   Bid Amount: representative of the total dollar value of the bid        to be analyzed.    -   Demand Model(s): representative of the historical demand for the        day of play (e.g. the average demand on Sundays over the last X        Sundays).    -   Course Conditions: representative of the expected course        conditions on the day of play.    -   Weather: representative of the expected weather conditions on        the day of play.    -   Promotions: representative of available promotions (e.g.,        discounts) for the day of play (as the availability of        promotions would be expected to increase demand).    -   Special Events: representative of special events at the golf        course or in the surrounding region that may affect a person's        decision to play golf on that day.    -   Etc.: This category is intended to capture other categories of        inputs that may encourage or discourage a golfer from playing a        round of golf and thus should be considered by the algorithm.

Those skilled in the art recognize and as described above, each input isrepresented numerically and scaled or weighted appropriately as theinputs propagate through the neural network. Typically, these inputspertain to a specific golf course and thus serve to customize thealgorithm for an individual course.

Each offered bid is evaluated individually based on the bid amount (theuppermost input to the network 20) along with the other input factorsassociated with the bid (e.g., special events that are occurringconcurrently with the desired tee time). In this example, the networkgenerates an output value that translates to a binary decision to acceptor decline this bid.

The network is trained or updated, as described herein, by a post hocreview of the course utilization and course revenue based on the bidsthat were accepted and rejected. The pertinent goal during this reviewand training process is to determine which rejected bids (if any) shouldhave been accepted to increase course revenue and which accepted bids(if any) should have been rejected in favor of more valuable bids thatwere made later in the week. In the training process the weights aremodified to make better predictions as to which rejected bids shouldhave been accepted and which accepted bids should have been rejected.

Training the network to optimize revenue requires an understanding ofcertain additional characteristics of golf courses. A group of fourgolfers (a “foursome”) can make a reservation together, or smallergroups (i.e. 1-3 golfers) can make reservations. Smaller groups canoptionally be aggregated into larger groups at the course. For example,two groups of two players (i.e., two “twosomes”) can be combined into afoursome, as could a threesome and a single player, or four singles. Forclarity, larger groups cannot normally be disaggregated at the course,i.e. a foursome cannot be broken up into two twosomes.

Armed with these playing group constraints, as well as the benefit of20/20 hindsight regarding both the actual utilization of tee times andthe bids received to play at those tee times, which can be gained onlyafter the tee times have passed, it is possible to mathematicallyidentify which bids should have been accepted and rejected in order tooptimize the revenue generated on any given day (which likely does notequate with the bids that were actually accepted and rejected). Once theideal bids are identified, the machine learning algorithm is updated,i.e., the weights are changed, so that the optimal result (that is,maximum revenue) would be achieved for the same bids with the sameexogenous features. Now that the algorithm has been updated, when it isemployed to evaluate bids on subsequent inventory, it will produce aresult (accepting certain bids and rejecting certain bids) that will becloser to optimal revenue.

Consider the following simplistic example. Assume a golf course receivesten bids to play golf anytime between 9:00 AM and 10:00 AM on a givenSunday morning with the individual bid characteristics shown in Table 1.

TABLE 1 Summary of Bids Received Bid #: 1 2 3 4 5 6 7 8 9 10 # ofPlayers: 1 2 2 2 2 4 3 3 2 2 Total Bid Value: $76 $65 $74 $70 $63 $65$68 $82 $73 $72

Further assume that based on a post-hoc review of the course's records,Table 2 represents the actual course utilization during the period from9:00-10:00 AM on the Sunday of interest based only on sales of inventorythrough channels other than the bidding process, i.e. it includes onlygolfers who purchased a tee time reservation at the list price.

TABLE 2 Course Utilization from Non-Bidding Golfers Tee Time PaidPlayers Openings 9:00 1 3 9:08 2 2 9:16 3 1 9:24 1 3 9:32 2 2 9:40 0 49:48 2 2 9:56 3 1

Optimization techniques have been previously developed to solve similarproblems (often referred to as knapsack or packing problems) and oneskilled in mathematical optimization will be familiar with thesetechniques. Linear algebra optimization is one such technique, whereby asolution can be deduced by setting an array of bids into a given set oftee sheet constraints and maximizing the revenue. Thus, using linearalgebra optimization or another mathematical optimization technique, itcan be determined that the ideal (or near-ideal in the case of multipleapproximate solutions) combination of bids that should have beenaccepted is shown in Table 3.

TABLE 3 Optimal Bid Combination Bid #: 1 2 3 4 5 6 7 8 9 10 # ofPlayers: 1 2 2 2 2 4 3 3 2 2 Total Bid Value: Tee Time Paid PlayersOpenings $76 $65 $74 $70 $63 $65 $68 $82 $73 $72 9.00 1 3 0 0 0 0 0 0 0

0 0 9.08 2 2 0 0

0 0 0 0 0 0 0 9.16 3 1 0 0 0 0 0 0 0 0 0 0 9.24 1 3 0 0 0 0 0 0

0 0 0 9.32 2 2 0 0 0

0 0 0 0 0 0 9.40 0 4 0

0 0 0 0 0 0 0

9.48 2 2 0 0 0 0 0 0 0 0

0 9.56 3 1

0 0 0 0 0 0 0 0 0

If bid numbers 1, 2, 3, 4, 7, 8, 9 and 10 had been accepted, it wouldhave generated $580 of additional revenue for the golf course. No othercombination of bids could both generate more revenue and alsoaccommodate all of the bidding golfers given the course's capacityconstraints.

This result is then provided to the artificial neural network fortraining the network. Assuming the neural network had not accepted theseeight bids, it will use the data from this optimal solution to identifyerrors and update various weights within the network accordingly. Theseadjustments will enable the neural network to make better decisions whennext presented with the problem to accept or reject a bid.

It should be clear from this example that the subject invention can beused by a golf course to implement a method of doing business thatoptimizes the revenue generated from the sale of tee times by allowinggolfers to submit bids and accepting or rejecting each individual bid innear real time, with confidence that the revenue generated by allaccepted bids will be at or near the maximum possible level. Byutilizing a bidding business model, such as embodied in the presentinvention, instead of or in concert with a traditional list pricebusiness model, golf courses can optimize the total revenue generatedfrom the sale of tee times.

A machine learning algorithm-based method 100 for use in deciding toaccept or decline a bid for an inventory item (e.g., a golf tee time) isset forth in FIG. 3 . A bid for an inventory item is received at a step104 and available inventory items (e.g., golf tee times for a golfcourse application) are received at a step 106. Each bid specifies atime or a time interval for reserving the inventory item and also a bidamount.

The algorithm also takes into account certain external features orconditions that may affect the desirability of (and thus the demand for)the inventory item. These external features are input at a step 108. Inthe golf tee time application these features may include, among others,expected weather conditions, golf course conditions, etc.

At step 112 the machine learning algorithm executes, using the inputinformation and indicates that the bid should be accepted or declined asshown at respective steps 114 and 115.

On a post hoc basis, all bids submitted (whether accepted or rejected)are evaluated at a step 120. An optimization algorithm, many of whichare known by those skilled in the art, receives and evaluates allsubmitted bids for a given time interval over which the inventory itemsare consumed. In a golf tee time application, the time interval may beone hour, during which there are typically eight tee times with each teetime able to accommodate four (but not more than four) golfers. Theoptimization algorithm determines which of the accepted bids should havebeen rejected in favor of more valuable bids that were received at alater time and also determines which of the rejected bids could havebeen accepted subject to the capacity constraints of the inventoryitems. Again, in the golf course tee time application the capacityconstraints include eight tee times per hour and no more than fourgolfers for each tee time.

The output from step 120 (bids that were incorrectly accepted orrejected) is fed back to the machine learning algorithm of step 112. Thealgorithm uses the “feedback” information to improve operation of thealgorithm. Specifically, the weights associated with the algorithm areadjusted such that if the same bids (i.e., the same bids that wereevaluated by the optimization algorithm) were again input to thealgorithm, the output would be different, i.e., the output would acceptcertain ones of the bids that had been rejected and reject certain onesof the bids that had been accepted to increase the bid-generatedrevenue.

A technical solution to optimize revenue by deciding which bids toaccept in near real time when subsequent bids for the same inventoryitem will be submitted later, is non-trivial, and in fact presents acomplex problem. While static algorithms may be employed with limitedsuccess and predictive accuracy, the use of a computer-based machinelearning algorithm (e.g., a neural network as set forth herein) isvirtually a necessity to optimize bid-generated revenue by accuratelypredicting which bids to accept and which to reject in near real time.

The use of machine learning algorithms (such as a neural network) toevaluate bids increases the performance capabilities of a computer byproviding faster response times, e.g., response times in near real time.Without the use of machine learning techniques and the training andupdating aspects of machine learning algorithms the predictive accuracyof bid evaluation decisions would be woefully inadequate.

In one embodiment of the invention, if there is excess demand for teetimes (e.g. all of the tee times 9:00 AM and 10:00 AM on a given Sundaymorning have already been sold, but additional bids are received for teetimes during that time window) the algorithm is trained to recognize theexcess demand and the bidding system may permit a certain number ofgolfers to be “squeezed-in” at a time between two scheduled tee times,e.g., “squeezed in” between a 9:08 tee time and a 9:16 tee time, whenall other close-in-time tee times have been reserved. The presentinvention can be modified to analyze such “squeezed-in” bids andmaximize the revenue generated from any such “squeezed-in” bids byadjusting a reserve price on incoming bids. Thus, in periods of highdemand, the algorithm reacts by allowing golfers to bid above the listprice to play in their preferred time period. In this embodiment of theinvention, the algorithm is trained to predict whether the current bidfor a squeeze time is the highest bid that will be received for that teetime.

To accommodate additional golfers and thereby increase course revenue agolf course operator can execute the decision algorithm one or more daysin advance. The algorithm will indicate the expected tee times that willnot be used (open tee times) during an interval of interest. Instead ofawaiting additional bids for those open tee times, the course operatorcan take a pro-active approach by contacting golfers and inviting themto play during an open tee time. For example, if a threesome isscheduled to play on Tuesday at 9:16, the course operator can contact agolfer who frequently bids to play as a single on weekday mornings andinvite him to join the threesome at the price of his most recent bid.

In another embodiment, the course operator can announce the opening toseveral golfers who may be interested in joining the threesome. Thegolfers could each be invited to submit a bid, or each told that theirlast bid would be accepted now and the first one to respond would getthe tee time.

Historical information about the utilization of the course and theassociated actual price paid for the tee time (either the list pricepaid or an accepted price resulting from the bidding process) can beused to create demand elasticity models that indicate how demand isaffected by varying the list price. The course operator can then adjustthe list price to increase demand.

Historical information about the utilization of the course and theassociated cost information, typically as determined from accepted bids,can also be used to provide market data to a golf course. Analyzing andparsing this data may provide important marketing information that canbe used to target specific demographics. For example, the data mayindicate that millennial women value the course (i.e., bid higheramounts) more highly than middle aged men. This information, which is aby-product of the present invention, can then be used to customize orsegment marketing campaigns, for example different campaigns formillennial women and middle-aged men.

Collaborative filtering concepts can also be applied to the presentinvention. Collaborative filtering of data predicts (filtering) theinterests of users by collecting preferences from many users(collaborating). The basic premise of collaborative filtering is that ifperson A has the same opinion as a person B on an issue, A is morelikely to share B's opinion on a different issue than the opinion of arandomly chosen person C. In the context of the present invention, ifgolfers A and B typically bid to play at similar courses, if golfer Ahas a bid rejected, it is better to offer a recommendation of a coursethat golfer B plays and likes, rather than a course that a randomlychosen golfer C plays and likes. This increases the probability thatgolfer A plays a course that both A and B enjoy, and that course sellsits available tee times.

In another embodiment the golf course operator or another partycollaborating with the operator can reserve one or more tee times inadvance. As the tee time approaches the holder of the reserved tee timecan sell it, likely at a premium above the list price and above theaverage accepted bid.

The bid data collected in conjunction with the bidding process can beused as a basis for inviting golfers to play a specific course. Forexample, a golfer who always submits a higher than average bid to pay aparticular course may be identified and invited to play that course orsubmit a bid to play that course. Specific marketing efforts can also bedirected to this golfer. Additionally, the tee times for which thegolfer has frequently submitted a bid can be taken into considerationwhen extending an invitation to the golfer, matching the golfer with hisfavorite tee time at his favorite course at a price similar or identicalto his bid history.

A golfer can send bid messages to a course, the message advising that heis willing to pay a specified dollar amount to play the course anytimeduring an identified time interval. The bid can be input to the machinelearning algorithm several times during that interval until the bid isaccepted or until the interval has passed.

Although the invention has been described in the context of reservinggolf tee times and maximizing revenue by accepting (or rejecting) teetime bids, the fundamental tenets of the invention can be applied to anyindustry (lodging, airlines, etc.) where inventory items are perishable,the inventory is capacity constrained, and decisions to accept or rejectbids are made in near real time, without the benefit of aggregating anumber of bids and comparing them to each other.

FIG. 4 illustrates a computer system 1100 for use in practicing theinvention. The system 1100 can include multiple remotely-locatedcomputers and/or processors and/or servers (not shown). The computersystem 1100 comprises one or more processors 1104 for executinginstructions in the form of computer code to carry out a specified logicroutine that implements the teachings of the present invention. Thecomputer system 1100 further comprises a memory 1106 for storing data,software, logic routine instructions, computer programs, files,operating system instructions, and the like, as is well known in theart. The memory 1106 can comprise several devices, for example, volatileand non-volatile memory components further comprising a random-accessmemory RAM, a read only memory ROM, hard disks, floppy disks, compactdisks including, but not limited to, CD-ROM, DVD-ROM, and CD-RW, tapes,flash drives, cloud storage, and/or other memory components. The system1100 further comprises associated drives and players for these memorytypes.

In a multiple computer embodiment, the processor 1104 comprises multipleprocessors on one or more computer systems linked locally or remotely.According to one embodiment, various tasks associated with the presentinvention may be segregated so that different tasks can be executed bydifferent computers/processors/servers located locally or remotelyrelative to each other.

The processor 1104 and the memory 1106 are coupled to a local interface1108. The local interface 1108 comprises, for example, a data bus withan accompanying control bus, or a network between a processor and/orprocessors and/or memory or memories. In various embodiments, thecomputer system 1100 further comprises a video interface 1120, one ormore input interfaces 1122, a modem 1124 and/or a data transceiverinterface device 1125. The computer system 1100 further comprises anoutput interface 1126. The system 1100 further comprises a display 1128.The graphical user interface referred to above may be presented on thedisplay 1128. The system 1100 may further comprise several input devices(some which are not shown) including, but not limited to, a keyboard1130, a mouse 1131, a microphone 1132, a digital camera, smart phone, awearable device, and a scanner (the latter two not shown). The datatransceiver 1125 interfaces with a hard disk drive 1139 where softwareprograms, including software instructions for implementing the presentinvention are stored.

The modem 1124 and/or data receiver 1125 can be coupled to an externalnetwork 1138 enabling the computer system 1100 to send and receive datasignals, voice signals, video signals and the like via the externalnetwork 1138 as is well known in the art. The system 1100 also comprisesoutput devices coupled to the output interface 1126, such as an audiospeaker 1140, a printer 1142, and the like.

This Detailed Description is not to be taken or considered in a limitingsense, and the appended claims, as well as the full range of equivalentembodiments to which such claims are entitled define the scope ofvarious embodiments. This disclosure is intended to cover any and alladaptations, variations, or various embodiments. Combinations ofpresented embodiments, and other embodiments not specifically describedherein by the descriptions, examples, or appended claims, may beapparent to those of skill in the art upon reviewing the abovedescription and are considered part of the current invention.

What is claimed is:
 1. A method for evaluating bids for purchasing aninventory item such that a decision to accept or reject a bid optimizesat least one financial or business goal, the method compromising:receiving a bid from a natural person, the bid comprising a bid price,the inventory item to be purchased, and a quantity of inventory items tobe purchased; inputting the bid into a machine learning algorithm thathas been trained by; re-evaluating a plurality of bids that werereceived for inventory items: determining a first subset of theplurality of bids that should have been accepted to achieve an optimizedresult relative to the at least one financial or business goal, and asecond subset of the plurality of bids that should have been rejected toachieve an optimized result relative to the at least one financial orbusiness goal: inputting the first and second subsets into the machinelearning algorithm, the algorithm generating an output; modifying themachine learning algorithm responsive to the output by calculating aprediction error according to a loss function over one or moreiterations and adjusting one or more weight values or other algorithmparameters used to evaluate the bid to reduce the prediction errorbetween the output and the optimized result: analyzing the bid using themachine learning algorithm; the machine learning algorithm generating anoutput that informs the decision to accept or reject the bid; andadvising the natural person that the bid was accepted or rejected. 2.The method of claim 1, wherein the at least one financial or businessgoal comprises, increasing short-term revenue, increasing long termrevenue, retaining customers who submit bids, increasing a number ofbids, reducing items in inventory, maximizing short term market share,maximizing long term market share, maximizing a number of inventoryitems sold in a given period of time, maximizing contribution margin,predicting demand, or a combination of any two or more goal.
 3. Themethod of claim 1, wherein the optimized result relative to the at leastone financial or business goal is defined by an objective function forthe algorithm, the method further compromising calculating a value ofthe objective function based on the first and second subsets of bidsthat were input, and adjusting one or more parameters of the algorithmto reduce the prediction error to thereby minimize, maximize, oroptimize the calculated value of the objective function.
 4. The methodof claim 3, wherein the objective function represents one or morefinancial or business goals aggregated into a single metric.
 5. Themethod of claim 3, wherein after an initial training, the one or moreweight values or other algorithm parameters are updated by inputtingbids received after the initial training of the machine learningalgorithm.
 6. The method of claim 5, further comprising the step ofupdating the machine learning algorithm to include information as toexternal factors that may affect the decision to accept or reject a bid.7. The method of claim 1, wherein the output of the machine learningalgorithm is combined with information or data from other sources inorder to determine whether to accept or reject the bid.
 8. The method ofclaim 1, wherein the inventory item comprises a capacity-constrained,perishable inventory item.
 9. The method of claim 1, wherein theinventory item comprises a product or a service.
 10. The method of claim1, wherein the inventory item comprises a golf tee time reservation, areservation for an airplane flight, or a reservation for lodging. 11.The method of claim 1, further comprising, a step of informing a biddingparty of the decision to accept or reject their bid, wherein the step ofinforming is executed by a device that receives the decision as an inputand contacts the bidding party to advise the decision.
 12. The method ofclaim 1, further comprising the machine learning algorithm receivinginformation as to external factors that may affect the decision toaccept or reject a bid, inputting the information into the machinelearning algorithm, and considering the information during the step ofanalyzing, thereby affecting the output of the machine learningalgorithm.
 13. A system for evaluating bids for purchasing an inventoryitem, such that the decision to accept or reject a bid optimizes atleast one financial or business goal, the system compromising: acomputer processor; a memory configured with executable instructionsoperable to: receive a bid from a natural person, the bid comprising abid price, the inventory item to be purchased, and a quantity ofinventory items to be purchased; input the bid into a machine learningalgorithm that has been trained by: re-evaluating a plurality of bidsthat were received for inventory items; determining a first subset ofthe plurality of bids that should have been accepted to achieve anoptimized result relative to the at least one financial or businessgoal, and a second subset of the plurality of bids that should have beenrejected to achieve n optimized result relative to the at least onefinancial or business goal; inputting the first and second subsets intothe machine learning algorithm, the algorithm generating an output;modifying the machine learning algorithm responsive to the optimizedresult by calculating prediction error according to a loss function overor more iterations and adjusting one or more weight values of otheralgorithm parameters used to evaluate the bid to reduce the predictionerror between the output and the optimized result; analyze the bid usingthe machine learning algorithm; generate an output, from the machinelearning algorithm, that informs the decision to accept or reject thebid; and advise the natural person that the bid was accepted orrejected.
 14. The system of claim 13, wherein an instruction to trainthe machine learning algorithm further comprises instructions to:determine an objective function for the algorithm; input bids into thealgorithm; use the algorithm to determine a calculated value of theobjective function based on the bids that were input; and adjust one ormore parameters of the algorithm to minimize, maximize, or optimize thecalculated value of the objective function.
 15. A non-transitorycomputer readable medium storing executable instructions for evaluatingbids for purchasing an inventory item, such that a decision to accept orreject the bid optimizes at least one financial or business goal, theinstructions, when executed causing a machine to perform operationscomprising: receiving a bid from a natural person, the bid comprising abid price, the inventory item to be purchased, and a quantity ofinventory items to be purchased; inputting the bid into a machinelearning algorithm that has been trained by; re-evaluating a pluralityof bids that were received for inventory items; determining a firstsubset of the plurality of bids that should have been accepted to createan optimized result relative to the at least one financial or businessgoal, and a second subset rejected to create an optimized resultrelative to the at least one financial or business goal; inputting thefirst and second subsets into the machine learning algorithm, thealgorithm generating an output; modifying the machine learning algorithmresponsive to the optimized result by calculating a prediction erroraccording to a loss function over one or more iterations and adjustingone or more weight values or other algorithm parameters used to evaluatethe bid to reduce the prediction error between the output and theoptimized result; analyzing the bid using the machine learningalgorithm; the machine learning algorithm generating an output thatinforms the decision to accept or reject the bid; and advising thenatural person that the bid was accepted or rejected.
 16. Thenon-transitory computer readable storage medium of claim 15, wherein anoperation of training the machine learning algorithm further comprises,determining an objective function for the algorithm, inputting bids intothe algorithm, using the algorithm to determine a calculated value ofthe objective function based on the bids that were input, and adjustingone or more parameters of the algorithm to minimize, maximize, oroptimize the calculated value of the objective function.